Исходный код
Option Explicit
Call CreateForm()
'==============================================================================
' Создать новую форму ввода (нужны права системного администратора)
'==============================================================================
Sub CreateForm()
Dim NewForm, StrRet, StrSysName, EditObjDlg
'Запросить описание создаваемой формы
StrRet = InputBox("Введите описание для создаваемой формы:")
'Если введена пустая строка, выйти из процедуры
If StrRet = "" Then Exit Sub
StrSysName = "FRM_TEST"
'Проверить, существует ли такое системное имя; если да - запросить другое
While ThisApplication.InputForms.Has(StrSysName)
StrSysName = InputBox("Введите другое сист. имя (такое уже есть):",, StrSysName)
Wend
'Отключить обработку ошибок
On Error Resume Next
'Создать новую форму
Set NewForm = ThisApplication.InputForms.Create
NewForm.Description = StrRet
NewForm.Caption = "Тестовая форма"
NewForm.SysName = StrSysName
'Создадим небольшой скрипт для новой формы (обработка события BeforeClose)
NewForm.Script = "Sub Form_BeforeClose(Form, Obj, Cancel)" & Chr(13) & _
" MsgBox ""Good bye!""" & Chr(13) & "End Sub"
'Если была ошибка создания формы, сообщить
If Err<>0 Then
MsgBox "Ошибка создания формы """ & NewForm.SysName & """", vbExclamation
Else
'Показать форму
NewForm.Show
End If
End Sub
'==============================================================================